package ${package}.mapper;

import ${package}.entity.${table.name};
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

<@m.copyright/>
@Mapper
public interface ${table.name}Mapper {
    /**
     * 根据id取得数据
     * @param id id
     * @return 实例对象
     */
    ${table.name} getById(Integer id);

    /**
     * 条件查询
     * @param ${table.name?uncap_first} 实例对象
     * @return 对象列表
     */
    List<${table.name}> query(${table.name} ${table.name?uncap_first});

    /**
     * 分页条件查询
     * @param ${table.name?uncap_first} 实例对象
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<${table.name}> page(@Param("${table.name?uncap_first}") ${table.name} ${table.name?uncap_first}, @Param("offset") int offset, @Param("limit") int limit);

    /**
     * 新增一条记录
     * @param ${table.name?uncap_first} 实例对象
     * @return 影响行数
     */
    int insert(${table.name} ${table.name?uncap_first});

    /**
     * 修改数据
     * @param ${table.name?uncap_first} 实例对象
     * @return 影响行数
     */
    int update(${table.name} ${table.name?uncap_first});

    /**
     * 通过id删除数据
     * @param id id
     * @return 影响行数
     */
    int deleteById(Integer id);
}